package com.enjoyor.soa.traffic.api.dto.gps;

/**
 * 
<table border=1 cellspacing=0 cellpadding=0>
	<tr><td rowspan=3 colspan=2>设备</td><td>设备上线</td><td>1</td></tr>
	<tr><td>设备离线</td><td>2</td></tr>
	<tr><td>设备报警</td><td>9</td></tr>
	<tr><td colspan=4></td></tr>
	<tr><td rowspan=3>禁区</td><td rowspan=3>进入禁区</td><td>报警</td><td>10</td></tr>
	<tr><td>报警开始</td><td>11</td></tr>
	<tr><td>报警结束</td><td>12</td></tr>
	<tr><td rowspan=3>围栏</td><td rowspan=3>围栏出界</td><td>报警</td><td>20</td></tr>
	<tr><td>报警开始</td><td>21</td></tr>
	<tr><td>报警结束</td><td>22</td></tr>
	<tr><td rowspan=3>通行证</td><td rowspan=3>未在许可时间内通行</td><td>报警</td><td>30</td></tr>
	<tr><td>报警开始</td><td>31</td></tr>
	<tr><td>报警结束</td><td>32</td></tr>
	<tr><td colspan=4></td></tr>
	<tr><td rowspan=6>超速</td><td rowspan=3>围栏内超速</td><td>报警</td><td>120</td></tr>
	<tr><td>报警开始</td><td>121</td></tr>
	<tr><td>报警结束</td><td>122</td></tr>
	<tr><td rowspan=3>通行证的超速</td><td>报警</td><td>130</td></tr>
	<tr><td>报警开始</td><td>131</td></tr>
	<tr><td>报警结束</td><td>132</td></tr>
	<tr><td colspan=4></td></tr>
	<tr><td rowspan=6>低速</td><td rowspan=3>围栏内低速</td><td>报警</td><td>220</td></tr>
	<tr><td>报警开始</td><td>221</td></tr>
	<tr><td>报警结束</td><td>222</td></tr>
	<tr><td rowspan=3>通行证的低速</td><td>报警</td><td>230</td></tr>
	<tr><td>报警开始</td><td>231</td></tr>
	<tr><td>报警结束</td><td>232</td></tr>
</table>
 * 
 */
public enum NotifyTypeEnum {
	/**
	 * 设备上线
	 */
	DEV_LOGIN("设备上线", 1),
	/**
	 * 设备离线
	 */
	DEV_LOGOUT("设备离线", 2),
	/**
	 * 设备报警<br />设备主动上报的报警
	 */
	DEV_ALARM("设备报警", 90),
	/**
	 * 首次进入禁区
	 */
	DEV_ALARM_START("首次设备报警", 91),
	/**
	 * 结束进入禁区
	 */
	DEV_ALARM_END("结束设备报警", 92),
	
	/**
	 * 进入禁区
	 */
	TRANS_ALARM_FORBIDDEN_IN("进入禁区", 10),
	/**
	 * 首次进入禁区
	 */
	TRANS_ALARM_FORBIDDEN_IN_START("首次进入禁区", 11),
	/**
	 * 结束进入禁区
	 */
	TRANS_ALARM_FORBIDDEN_IN_END("结束进入禁区", 12),

	/**
	 * 围栏出界
	 */
	TRANS_ALARM_FENCE_OUT("围栏出界", 20),
	/**
	 * 首次围栏出界
	 */
	TRANS_ALARM_FENCE_OUT_START("首次围栏出界", 21),
	/**
	 * 结束围栏出界
	 */
	TRANS_ALARM_FENCE_OUT_END("结束围栏出界", 22),

	/**
	 * 未在通行证许可的时间内通行
	 */
	TRANS_ALARM_PASS_TIME("未在通行证许可的时间内通行",30),
	/**
	 * 首次未在通行证许可的时间内通行
	 */
	TRANS_ALARM_PASS_TIME_START("首次未在通行证许可的时间内通行",31),
	/**
	 * 结束未在通行证许可的时间内通行
	 */
	TRANS_ALARM_PASS_TIME_END("结束未在通行证许可的时间内通行",32),

	/**
	 * 围栏内超速
	 */
	TRANS_ALARM_FENCE_SPEED("围栏内超速",120),
	/**
	 * 首次围栏内超速
	 */
	TRANS_ALARM_FENCE_SPEED_START("首次围栏内超速",121),
	/**
	 * 结束围栏内超速
	 */
	TRANS_ALARM_FENCE_SPEED_END("结束围栏内超速",122),

	/**
	 * 通行证范围内超速
	 */
	TRANS_ALARM_PASS_SPEED("通行证范围内超速",130),
	/**
	 * 首次通行证范围内超速
	 */
	TRANS_ALARM_PASS_SPEED_START("首次通行证范围内超速",131),
	/**
	 * 结束通行证范围内超速
	 */
	TRANS_ALARM_PASS_SPEED_END("结束通行证范围内超速",132),

	/**
	 * 围栏内低速
	 */
	TRANS_ALARM_FENCE_LOW_SPEED("围栏内低速",220),
	/**
	 * 首次围栏内低速
	 */
	TRANS_ALARM_FENCE_LOW_SPEED_START("首次围栏内低速",221),
	/**
	 * 结束围栏内低速
	 */
	TRANS_ALARM_FENCE_LOW_SPEED_END("结束围栏内低速",222),

	/**
	 * 通行证范围内低速
	 */
	TRANS_ALARM_PASS_LOW_SPEED("通行证范围内低速",230),
	/**
	 * 首次通行证范围内低速
	 */
	TRANS_ALARM_PASS_LOW_SPEED_START("首次通行证范围内低速",231),
	/**
	 * 结束通行证范围内低速
	 */
	TRANS_ALARM_PASS_LOW_SPEED_END("结束通行证范围内低速",232);
	

	private String name;
	private Integer code;

	private NotifyTypeEnum(String name, Integer code) {
		this.name=name;
		this.code=code;
	}

	public static String getName(Integer code) {
		for (NotifyTypeEnum l : NotifyTypeEnum.values()) {
			if (l.code == code) {
				return l.name;
			}
		}
		return null;
	}

	public static NotifyTypeEnum getEnum(Integer code) {
		for (NotifyTypeEnum l : NotifyTypeEnum.values()) {
			if (l.code == code) {
				return l;
			}
		}
		return null;
	}
	
	public String getName() {
		return name;
	}

	public Integer getCode() {
		return code;
	}
}
